package com.csun.cmny.provider.dao;

import com.csun.cmny.provider.model.domain.DmcCsunVersionSet;
import com.csun.cmny.provider.model.dto.version.VersionSetQueryDto;
import com.csun.cmny.provider.model.vo.csunversion.AppVersionDeviceVo;
import com.csun.cmny.provider.model.vo.csunversion.VersionDeviceVo;
import com.csun.cmny.provider.model.vo.csunversion.VersionSetVo;
import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.Mapper;

import java.util.List;
import java.util.Map;

public interface DmcCsunVersionSetMapper extends Mapper<DmcCsunVersionSet> {

    /**
     * query dmc csun version set list with page
     *
     * @param versionSetQueryDto    the vresion set query dto
     *
     * @return  the list.
     */
    List<VersionSetVo> queryListWithPage(VersionSetQueryDto versionSetQueryDto);

    /**
     * query dmc csun version set device detail list with page
     *
     * @param versionSetQueryDto    the version set query dto
     *
     * @return  the list.
     */
    List<VersionDeviceVo> queryDetailListWithPage(VersionSetQueryDto versionSetQueryDto);

    /**
     * query version set vo list
     *
     * @param param the param
     *
     * @return  the list.
     */
    List<VersionSetVo> queryVersionSetVoList(Map<String, Object> param);

    /**
     * query update version list
     *
     * @return the list
     */
    List<AppVersionDeviceVo> queryUpdateVersionList(@Param("deviceIdList") List<Long> deviceIdList);

    /**
     * query version set vo by id
     *
     * @param versionSetId  the version set id
     *
     * @return  the version set vo
     */
    VersionSetVo queryVersionSetVoById(Long versionSetId);
}